{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_csv(\"./data/stock_day.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>22.406</td>\n",
       "      <td>21.955</td>\n",
       "      <td>22.942</td>\n",
       "      <td>40827.52</td>\n",
       "      <td>42736.34</td>\n",
       "      <td>56007.50</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>21.938</td>\n",
       "      <td>21.929</td>\n",
       "      <td>23.022</td>\n",
       "      <td>35119.58</td>\n",
       "      <td>41871.97</td>\n",
       "      <td>56372.85</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-22</th>\n",
       "      <td>22.25</td>\n",
       "      <td>22.76</td>\n",
       "      <td>22.28</td>\n",
       "      <td>22.02</td>\n",
       "      <td>36105.01</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.64</td>\n",
       "      <td>21.446</td>\n",
       "      <td>21.909</td>\n",
       "      <td>23.137</td>\n",
       "      <td>35397.58</td>\n",
       "      <td>39904.78</td>\n",
       "      <td>60149.60</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>21.366</td>\n",
       "      <td>21.923</td>\n",
       "      <td>23.253</td>\n",
       "      <td>33590.21</td>\n",
       "      <td>42935.74</td>\n",
       "      <td>61716.11</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-22  22.25  22.76  22.28  22.02  36105.01          0.36      1.64   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65  55576.11      2.39  \n",
       "2018-02-26  22.406  21.955  22.942  40827.52  42736.34  56007.50      1.53  \n",
       "2018-02-23  21.938  21.929  23.022  35119.58  41871.97  56372.85      1.32  \n",
       "2018-02-22  21.446  21.909  23.137  35397.58  39904.78  60149.60      0.90  \n",
       "2018-02-14  21.366  21.923  23.253  33590.21  42935.74  61716.11      0.58  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = data.drop([\"ma5\",\"ma10\",\"ma20\",\"v_ma5\",\"v_ma10\",\"v_ma20\"], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-22</th>\n",
       "      <td>22.25</td>\n",
       "      <td>22.76</td>\n",
       "      <td>22.28</td>\n",
       "      <td>22.02</td>\n",
       "      <td>36105.01</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.64</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-22  22.25  22.76  22.28  22.02  36105.01          0.36      1.64   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "\n",
       "            turnover  \n",
       "2018-02-27      2.39  \n",
       "2018-02-26      1.53  \n",
       "2018-02-23      1.32  \n",
       "2018-02-22      0.90  \n",
       "2018-02-14      0.58  "
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 算术运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2018-02-27    34.16\n",
       "2018-02-26    33.53\n",
       "2018-02-23    32.82\n",
       "2018-02-22    32.28\n",
       "2018-02-14    31.92\n",
       "Name: close, dtype: float64"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[\"close\"].add(10).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# data[\"close\"]+100"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 逻辑运算"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 逻辑运算符号<、>、|、&"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-01</th>\n",
       "      <td>23.71</td>\n",
       "      <td>23.86</td>\n",
       "      <td>22.42</td>\n",
       "      <td>22.22</td>\n",
       "      <td>66414.64</td>\n",
       "      <td>-1.30</td>\n",
       "      <td>-5.48</td>\n",
       "      <td>1.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-31</th>\n",
       "      <td>23.85</td>\n",
       "      <td>23.98</td>\n",
       "      <td>23.72</td>\n",
       "      <td>23.31</td>\n",
       "      <td>49155.02</td>\n",
       "      <td>-0.11</td>\n",
       "      <td>-0.46</td>\n",
       "      <td>1.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-30</th>\n",
       "      <td>23.71</td>\n",
       "      <td>24.08</td>\n",
       "      <td>23.83</td>\n",
       "      <td>23.70</td>\n",
       "      <td>32420.43</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-29</th>\n",
       "      <td>24.40</td>\n",
       "      <td>24.63</td>\n",
       "      <td>23.77</td>\n",
       "      <td>23.72</td>\n",
       "      <td>65469.81</td>\n",
       "      <td>-0.73</td>\n",
       "      <td>-2.98</td>\n",
       "      <td>1.64</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-01  23.71  23.86  22.42  22.22  66414.64         -1.30     -5.48   \n",
       "2018-01-31  23.85  23.98  23.72  23.31  49155.02         -0.11     -0.46   \n",
       "2018-01-30  23.71  24.08  23.83  23.70  32420.43          0.05      0.21   \n",
       "2018-01-29  24.40  24.63  23.77  23.72  65469.81         -0.73     -2.98   \n",
       "\n",
       "            turnover  \n",
       "2018-02-27      2.39  \n",
       "2018-02-01      1.66  \n",
       "2018-01-31      1.23  \n",
       "2018-01-30      0.81  \n",
       "2018-01-29      1.64  "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[data['open'] > 23].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-01</th>\n",
       "      <td>23.71</td>\n",
       "      <td>23.86</td>\n",
       "      <td>22.42</td>\n",
       "      <td>22.22</td>\n",
       "      <td>66414.64</td>\n",
       "      <td>-1.30</td>\n",
       "      <td>-5.48</td>\n",
       "      <td>1.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-31</th>\n",
       "      <td>23.85</td>\n",
       "      <td>23.98</td>\n",
       "      <td>23.72</td>\n",
       "      <td>23.31</td>\n",
       "      <td>49155.02</td>\n",
       "      <td>-0.11</td>\n",
       "      <td>-0.46</td>\n",
       "      <td>1.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-30</th>\n",
       "      <td>23.71</td>\n",
       "      <td>24.08</td>\n",
       "      <td>23.83</td>\n",
       "      <td>23.70</td>\n",
       "      <td>32420.43</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-16</th>\n",
       "      <td>23.40</td>\n",
       "      <td>24.60</td>\n",
       "      <td>24.40</td>\n",
       "      <td>23.30</td>\n",
       "      <td>101295.42</td>\n",
       "      <td>0.96</td>\n",
       "      <td>4.10</td>\n",
       "      <td>2.54</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low     volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53   95578.03          0.63      2.68   \n",
       "2018-02-01  23.71  23.86  22.42  22.22   66414.64         -1.30     -5.48   \n",
       "2018-01-31  23.85  23.98  23.72  23.31   49155.02         -0.11     -0.46   \n",
       "2018-01-30  23.71  24.08  23.83  23.70   32420.43          0.05      0.21   \n",
       "2018-01-16  23.40  24.60  24.40  23.30  101295.42          0.96      4.10   \n",
       "\n",
       "            turnover  \n",
       "2018-02-27      2.39  \n",
       "2018-02-01      1.66  \n",
       "2018-01-31      1.23  \n",
       "2018-01-30      0.81  \n",
       "2018-01-16      2.54  "
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[(data['open'] > 23) & (data['open'] < 24)].head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 逻辑运算函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-01</th>\n",
       "      <td>23.71</td>\n",
       "      <td>23.86</td>\n",
       "      <td>22.42</td>\n",
       "      <td>22.22</td>\n",
       "      <td>66414.64</td>\n",
       "      <td>-1.30</td>\n",
       "      <td>-5.48</td>\n",
       "      <td>1.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-31</th>\n",
       "      <td>23.85</td>\n",
       "      <td>23.98</td>\n",
       "      <td>23.72</td>\n",
       "      <td>23.31</td>\n",
       "      <td>49155.02</td>\n",
       "      <td>-0.11</td>\n",
       "      <td>-0.46</td>\n",
       "      <td>1.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-30</th>\n",
       "      <td>23.71</td>\n",
       "      <td>24.08</td>\n",
       "      <td>23.83</td>\n",
       "      <td>23.70</td>\n",
       "      <td>32420.43</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-16</th>\n",
       "      <td>23.40</td>\n",
       "      <td>24.60</td>\n",
       "      <td>24.40</td>\n",
       "      <td>23.30</td>\n",
       "      <td>101295.42</td>\n",
       "      <td>0.96</td>\n",
       "      <td>4.10</td>\n",
       "      <td>2.54</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low     volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53   95578.03          0.63      2.68   \n",
       "2018-02-01  23.71  23.86  22.42  22.22   66414.64         -1.30     -5.48   \n",
       "2018-01-31  23.85  23.98  23.72  23.31   49155.02         -0.11     -0.46   \n",
       "2018-01-30  23.71  24.08  23.83  23.70   32420.43          0.05      0.21   \n",
       "2018-01-16  23.40  24.60  24.40  23.30  101295.42          0.96      4.10   \n",
       "\n",
       "            turnover  \n",
       "2018-02-27      2.39  \n",
       "2018-02-01      1.66  \n",
       "2018-01-31      1.23  \n",
       "2018-01-30      0.81  \n",
       "2018-01-16      2.54  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.query('open < 24 & open > 23').head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-31</th>\n",
       "      <td>23.85</td>\n",
       "      <td>23.98</td>\n",
       "      <td>23.72</td>\n",
       "      <td>23.31</td>\n",
       "      <td>49155.02</td>\n",
       "      <td>-0.11</td>\n",
       "      <td>-0.46</td>\n",
       "      <td>1.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-07-26</th>\n",
       "      <td>23.53</td>\n",
       "      <td>23.92</td>\n",
       "      <td>23.40</td>\n",
       "      <td>22.85</td>\n",
       "      <td>110276.48</td>\n",
       "      <td>-0.30</td>\n",
       "      <td>-1.27</td>\n",
       "      <td>2.76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-12-18</th>\n",
       "      <td>23.53</td>\n",
       "      <td>24.66</td>\n",
       "      <td>23.99</td>\n",
       "      <td>23.43</td>\n",
       "      <td>109230.05</td>\n",
       "      <td>0.65</td>\n",
       "      <td>2.79</td>\n",
       "      <td>3.74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-26</th>\n",
       "      <td>23.85</td>\n",
       "      <td>24.08</td>\n",
       "      <td>23.53</td>\n",
       "      <td>23.50</td>\n",
       "      <td>51446.29</td>\n",
       "      <td>-0.31</td>\n",
       "      <td>-1.30</td>\n",
       "      <td>1.76</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low     volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53   95578.03          0.63      2.68   \n",
       "2018-01-31  23.85  23.98  23.72  23.31   49155.02         -0.11     -0.46   \n",
       "2017-07-26  23.53  23.92  23.40  22.85  110276.48         -0.30     -1.27   \n",
       "2015-12-18  23.53  24.66  23.99  23.43  109230.05          0.65      2.79   \n",
       "2015-11-26  23.85  24.08  23.53  23.50   51446.29         -0.31     -1.30   \n",
       "\n",
       "            turnover  \n",
       "2018-02-27      2.39  \n",
       "2018-01-31      1.23  \n",
       "2017-07-26      2.76  \n",
       "2015-12-18      3.74  \n",
       "2015-11-26      1.76  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[data['open'].isin([23.53, 23.85])]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 统计运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>21.272706</td>\n",
       "      <td>21.900513</td>\n",
       "      <td>21.336267</td>\n",
       "      <td>20.771835</td>\n",
       "      <td>99905.519114</td>\n",
       "      <td>0.018802</td>\n",
       "      <td>0.190280</td>\n",
       "      <td>2.936190</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>3.930973</td>\n",
       "      <td>4.077578</td>\n",
       "      <td>3.942806</td>\n",
       "      <td>3.791968</td>\n",
       "      <td>73879.119354</td>\n",
       "      <td>0.898476</td>\n",
       "      <td>4.079698</td>\n",
       "      <td>2.079375</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>12.250000</td>\n",
       "      <td>12.670000</td>\n",
       "      <td>12.360000</td>\n",
       "      <td>12.200000</td>\n",
       "      <td>1158.120000</td>\n",
       "      <td>-3.520000</td>\n",
       "      <td>-10.030000</td>\n",
       "      <td>0.040000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>19.000000</td>\n",
       "      <td>19.500000</td>\n",
       "      <td>19.045000</td>\n",
       "      <td>18.525000</td>\n",
       "      <td>48533.210000</td>\n",
       "      <td>-0.390000</td>\n",
       "      <td>-1.850000</td>\n",
       "      <td>1.360000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>21.440000</td>\n",
       "      <td>21.970000</td>\n",
       "      <td>21.450000</td>\n",
       "      <td>20.980000</td>\n",
       "      <td>83175.930000</td>\n",
       "      <td>0.050000</td>\n",
       "      <td>0.260000</td>\n",
       "      <td>2.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>23.400000</td>\n",
       "      <td>24.065000</td>\n",
       "      <td>23.415000</td>\n",
       "      <td>22.850000</td>\n",
       "      <td>127580.055000</td>\n",
       "      <td>0.455000</td>\n",
       "      <td>2.305000</td>\n",
       "      <td>3.915000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>34.990000</td>\n",
       "      <td>36.350000</td>\n",
       "      <td>35.210000</td>\n",
       "      <td>34.010000</td>\n",
       "      <td>501915.410000</td>\n",
       "      <td>3.030000</td>\n",
       "      <td>10.030000</td>\n",
       "      <td>12.560000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open        high       close         low         volume  \\\n",
       "count  643.000000  643.000000  643.000000  643.000000     643.000000   \n",
       "mean    21.272706   21.900513   21.336267   20.771835   99905.519114   \n",
       "std      3.930973    4.077578    3.942806    3.791968   73879.119354   \n",
       "min     12.250000   12.670000   12.360000   12.200000    1158.120000   \n",
       "25%     19.000000   19.500000   19.045000   18.525000   48533.210000   \n",
       "50%     21.440000   21.970000   21.450000   20.980000   83175.930000   \n",
       "75%     23.400000   24.065000   23.415000   22.850000  127580.055000   \n",
       "max     34.990000   36.350000   35.210000   34.010000  501915.410000   \n",
       "\n",
       "       price_change    p_change    turnover  \n",
       "count    643.000000  643.000000  643.000000  \n",
       "mean       0.018802    0.190280    2.936190  \n",
       "std        0.898476    4.079698    2.079375  \n",
       "min       -3.520000  -10.030000    0.040000  \n",
       "25%       -0.390000   -1.850000    1.360000  \n",
       "50%        0.050000    0.260000    2.500000  \n",
       "75%        0.455000    2.305000    3.915000  \n",
       "max        3.030000   10.030000   12.560000  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "open               13678.35\n",
       "high               14082.03\n",
       "close              13719.22\n",
       "low                13356.29\n",
       "volume          64239248.79\n",
       "price_change          12.09\n",
       "p_change             122.35\n",
       "turnover            1887.97\n",
       "dtype: float64"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.sum(axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame({'COL1' : [2,3,4,5,4,2],\n",
    "                   'COL2' : [0,1,2,3,4,2]})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>COL1</th>\n",
       "      <th>COL2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   COL1  COL2\n",
       "0     2     0\n",
       "1     3     1\n",
       "2     4     2\n",
       "3     5     3\n",
       "4     4     4\n",
       "5     2     2"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "COL1    3.5\n",
       "COL2    2.0\n",
       "dtype: float64"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.median()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "open            2015-06-15\n",
       "high            2015-06-10\n",
       "close           2015-06-12\n",
       "low             2015-06-12\n",
       "volume          2017-10-26\n",
       "price_change    2015-06-09\n",
       "p_change        2015-08-28\n",
       "turnover        2017-10-26\n",
       "dtype: object"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.idxmax()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "open            2015-03-02\n",
       "high            2015-03-02\n",
       "close           2015-09-02\n",
       "low             2015-03-02\n",
       "volume          2016-07-06\n",
       "price_change    2015-06-15\n",
       "p_change        2015-09-01\n",
       "turnover        2016-07-06\n",
       "dtype: object"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.idxmin()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 累计统计函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = data.sort_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2015-03-02</th>\n",
       "      <td>12.25</td>\n",
       "      <td>12.67</td>\n",
       "      <td>12.52</td>\n",
       "      <td>12.20</td>\n",
       "      <td>96291.73</td>\n",
       "      <td>0.32</td>\n",
       "      <td>2.62</td>\n",
       "      <td>3.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-03</th>\n",
       "      <td>12.52</td>\n",
       "      <td>13.06</td>\n",
       "      <td>12.70</td>\n",
       "      <td>12.52</td>\n",
       "      <td>139071.61</td>\n",
       "      <td>0.18</td>\n",
       "      <td>1.44</td>\n",
       "      <td>4.76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-04</th>\n",
       "      <td>12.80</td>\n",
       "      <td>12.92</td>\n",
       "      <td>12.90</td>\n",
       "      <td>12.61</td>\n",
       "      <td>67075.44</td>\n",
       "      <td>0.20</td>\n",
       "      <td>1.57</td>\n",
       "      <td>2.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-05</th>\n",
       "      <td>12.88</td>\n",
       "      <td>13.45</td>\n",
       "      <td>13.16</td>\n",
       "      <td>12.87</td>\n",
       "      <td>93180.39</td>\n",
       "      <td>0.26</td>\n",
       "      <td>2.02</td>\n",
       "      <td>3.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-06</th>\n",
       "      <td>13.17</td>\n",
       "      <td>14.48</td>\n",
       "      <td>14.28</td>\n",
       "      <td>13.13</td>\n",
       "      <td>179831.72</td>\n",
       "      <td>1.12</td>\n",
       "      <td>8.51</td>\n",
       "      <td>6.16</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low     volume  price_change  p_change  \\\n",
       "2015-03-02  12.25  12.67  12.52  12.20   96291.73          0.32      2.62   \n",
       "2015-03-03  12.52  13.06  12.70  12.52  139071.61          0.18      1.44   \n",
       "2015-03-04  12.80  12.92  12.90  12.61   67075.44          0.20      1.57   \n",
       "2015-03-05  12.88  13.45  13.16  12.87   93180.39          0.26      2.02   \n",
       "2015-03-06  13.17  14.48  14.28  13.13  179831.72          1.12      8.51   \n",
       "\n",
       "            turnover  \n",
       "2015-03-02      3.30  \n",
       "2015-03-03      4.76  \n",
       "2015-03-04      2.30  \n",
       "2015-03-05      3.19  \n",
       "2015-03-06      6.16  "
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_rise = data['p_change']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2015-03-02    2.62\n",
       "2015-03-03    1.44\n",
       "2015-03-04    1.57\n",
       "2015-03-05    2.02\n",
       "2015-03-06    8.51\n",
       "Name: p_change, dtype: float64"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_rise.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_rise = stock_rise.cumsum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2015-03-02     2.62\n",
       "2015-03-03     4.06\n",
       "2015-03-04     5.63\n",
       "2015-03-05     7.65\n",
       "2015-03-06    16.16\n",
       "Name: p_change, dtype: float64"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_rise.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAD6CAYAAABEUDf/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJztvXecW9WZ//8+ozLS9O7ebQwumGJMNWBaaCkk2U1CspDAL2wSEkI2C9ksYTffFEKy2WQhpLFphJBCIJANDh0DBgwugAvgjnubXiTNqJ3fH/dezZVGmtGMpJE087xfL15IV7ecI48+97nPeYrSWiMIgiCMTUryPQBBEAQhd4jIC4IgjGFE5AVBEMYwIvKCIAhjGBF5QRCEMYyIvCAIwhhGRF4QBGEMM2yRV0q5lFJ/s72/VSn1qlLqcaWUWynVoJRarZTarJS6M7vDFQRBEIbDsEReKeUFNgAXm+9nAwu11mcAjwNTgZuBlcAS4DKl1HFZHbEgCIKQNs7h7Ky1DgAnKqV2mpsuBGqVUi8CR4EfARcAX9BaR5VSLwArgO2pztnQ0KBnzpw5krELgiCMWzZs2NCitW4car9hiXwSGoFmrfX7lFJrgHOAeqDT/LwLqBvsBDNnzmT9+vUZDkMQBGF8oZTam85+mS68dgHbzNe7gSlAC1Btbqs23ycO7gal1Hql1Prm5uYMhyAIgiCkIlOR3wAsNV/PxRD6Z4FLlFIlwHnAqsSDtNb3aq2Xaq2XNjYO+bQhCIIgjJCMRF5rvQZoVUqtA7ZprdcCdwOXA5uAlVrrnYOdQxAEQcgdI/LJa63n2l5/NuGzFmB5huMSBEEQsoAkQwmCIIxhROQFQRDGMCLygiAIYxgReUEQBBvPvnOU/W3+fA8ja2SaDCUIgjCmuP4+Izlzz51X5Hkk2UEseUEQBJNQJJrvIWQdEXlBEAQTX1849rq7N5THkWQPEXlBEAST7t5+ke+xCX4xIyIvCIJgYhd2fzCSx5FkDxF5QRAEIBrVXHbX6tj7gIi8IAjC2GF/e3zYZG9IRF4QBGHM8M7h7rj3ARF5QRCEscP2owkiL+4aQRCEsUNnID5kUix5QRCEMYQVTfP+kyYDYskLgiCMKQLBMNPryvj6exca78WSFwRBGDv4ghHK3A68bgcgIi8IgjCmCJgiX+o0ZLFX3DWCIAhjB38wTJnbiVIKr8sxfi15pZRLKfW3hG3/opR6xnzdoJRarZTarJS6M1sDFQRByCV+05IH8Lod47OsgVLKC2wALrZtmwFca9vtZmAlsAS4TCl1XBbGKQiCkFPsIl9e6oirSFnMDEvktdYBrfWJwAHb5ruAr9reXwA8rbWOAi8AKzIepSAIQo7xByN43UYfpYpSFz1949CST0QpdTWwEXjbtrke6DRfdwF1SY67QSm1Xim1vrm5OZMhCIIgZIVAMEy5aclXlDro6ZN68gBXAhcCfwROVUp9HmgBqs3Pq833cWit79VaL9VaL21sbMxwCIIgCJkRjWr8oX53TUWpE5/Nkr/nuR18/8lt+RpeRmQk8lrrq7XW5wAfBTZore8BngUuUUqVAOcBqzIfpiAIQm7oDISY/e9/R2soKzXcNeWlTnr6wmw/2s2x7l6+/9R27lm1M88jHRm5aOR9N/AI8HHgb1rr4vxmBEEYFxzuDMReV3lcAFR6nLzb4uOSH77Ihcc3xT4PR6I4HcUVeT4ikddaz014vwe4yHzdAizPeGSCIAijQFegP4qm2muIfLm7Xxqf396/bni4s5dpdWWjN7gsUFy3JEEQhCzT5uuLvbZEvsLTL/KRqI693nEsvhxxMSAiLwjCuKalJxh7HRP50uROjsc2Hh6VMWUTEXlBEMY1bb6BIt9YWQrAFSdOin126oxaNh/spNjIxcKrIAhC0dDaM9Bdc9miSUz9rJeFk6u5YflsHCWK37yyh1d2DogIL3hE5AVBGBfsPNZNlcdFU5UnbnurzZKvNH3xbmcJp84w8jiXTKsBDBdOdxGWOhCRFwRhXHDRD15EKXj3O1fEbW+1+eRLSlTK4ys9Ruy81hqlUu9XaIhPXhCEcYPW0OEPxm1r8wW5ZMEE9tx5RYqjDCpKnWhN0VWnFJEXBGHMo3V/GOSK7z8f91mrr4/6itIhz1FuRtwUW3VKcdcIgjCmWfqtp7nq5Cmx9+3+EKFIFJejhGhU0+YL0lDhHvI8lr++uy9M0xD7FhJiyQuCMKbo7g2xv80PGBZ8S0+Q/139btw+r+xqBaAjECKqoa58aJG3Yud7eovLkheRFwRhTPEPP1vD8u+tQms9oIVfY2UpNWUuHnh1LwDtpn++tmxokS9Wd42IvCAIY4ZIVLP1iFF64N0W3wCr+wf/uISz5tSz81gPAB1+o2Z8TZlryHNblnxXjiz55u4+rrh7NRv3d2T1vCLygiCMGX6/dl/s9Zf+9CbvHImvNVPlcTGtrowD7QEiUU1nwLDka9Kw5BvMxdkWW/JUNnlu61HeOtTF5x54PavnFZEXBGHM8PKOFqabVSI3HujkO39/J+7zKq+LGXXlBCNR/rB2Hy3dpsh7h7bkGyrclCg42tWb0RhDkShRW9EzgEMdAb7y8GYAekPZDdEUkRcEYczQ7g8yscrDH284I/beTqXHybwJFQB87dEt/G3TISA9d43TUUJjZSlHOjMT+Xm3Pc4tD22K2/bqbmMh2FmiaPUF6QtnT+hF5AVBGDN0+EPUlrs4Y3Y9p0yv4WhXvGul0uPktJl13PKe+QBsPdKNUlDpGVrkAZwlJfx5wwG++8TWEY3Pitd/+PUD9NgWcDfsbafUWcI33r8IgGNd2XMJicgLgjBmaPMHY5Eyk2q8cZ95XCWUOo0erp9ePhswFjurPC4cg5QzsGNVM7j3xd0jGl9fOBp7fetDGwFYt6eNB17bx/GTqphaa4z5+09lr5+siLwgCGMCrTUd/mBsEXVydXwhMru17naWxCpOphMjb/GLa5dy6oxaIlFNXzgybLdKwFYSYe277QD89PldeF0OvnPVYiabN6a/vnkoLks3ka/+ZXPa1xy2yCulXEqpv9ne36eUelUp9X9KKadSyqOUekwptVEpdb8qpko+giAULb5ghFBEU2v61y9eMDHu8ypPfIJ/1BTRSxZOSPsax0+s4gNm9uy/PbyZ+V97glAkOsRR/djj9is9Tj5z/wae23qMSxZOYMHkKuY0lnPKdKPqpRXemYx1e9rSvuawRF4p5QU2ABeb788BnFrrM4Aq4BLgE8ABrfUSoNbaVxAEIRes2nqMF7Y30+6LT2xaNquOOz+4mF9/8jTAiKyx023Gu3/stOnDul69afk/8sZBgGE1ErGKm02p8bK/zc8Tbx0BoMlsUqKU4rPnGy2095lZu4lEozrlZ8kYlshrrQNa6xOBA+amo8BdCee6AHjafP0csGI41xAEQRgOn/rNOq791dpYXXi7++Wjy6azdGYtMHBx9fYrF3D16dOZ2VA+rOslZsd+e+U7HOwIpHWsFR65YHIVYVsYZVNlv2vJCgF9/49fThqTf6Srl2A4/aeHjHzyWusdWuu1SqmrgCjwFFAPWLe2LqAu8Til1A1KqfVKqfXNzc2JHwuCIAwbK7TRat1nUVHqxOVQA9w1158zizuuWjzs69TbipktmlLFpgMd/OolozbOtiPdnH3nc2xJYd1b7pqPnjYtbrv9xjS7sZyLTjBcSI+8fnDAOfa0+oY13owXXpVS7wNuAt6rtQ4DLUC1+XG1+T4OrfW9WuulWuuljY2NmQ5BEIQC5EfP7uDRNwaKVK5Y+67hp25IEHmlFLMaymMWcqZYrpX/75xZPPaF5Uyq9sZaCL6+r52DHQG++Mc3kh5rLbzWlLl4/l/Pj22P2hZZXY4S/veaU3E7Smjp6cMfjC+jsLc1fVcNZCjySqmJwC3AlVprK3/4WQzfPBium1WZXEMQhOLkv5/ezs1/ejOn17BHoLy534hWSVY2+KHPnsUXL5qXlWvWlLlZe9uF3HbFCQDUlrloNxdJLZ/7rmYf7b4g3b3xi6eWJe9xOZjZUM4z/3Iux0+s5MIT4hd/lVLUlLn4+Yu7WfAfT8Yt7u5t9eN2pC/dmVry1wKTgCeVUi8ppa4DHgCmKKU2AW0Yoi8IgpB17AlFO472UOVxxmLh7VR5XEm3j5SmSk+sBWBNmTuWWWvvOrX8e6u47K7VdNqiZCxL3usyxjK3qZInbj43aRinPQu3zdaHdm+rj6l13gH7p2JEIq+1nmv+/7ta67la63PM/36lte7TWl+ptT5Ra/1PerBgT0EQhAzoDPQLaHdfeIA/fjQwLHlDhNv9wVhiVU9fmAPtAW57tD+m3bLkve6hbzj2omn2DNjdzT5m1ae/WCzJUIIgZJ1c2naRqI5Fs9hFHmBWQ0XOrpuK2nI3HT5jHO3+EDPq+33/y+c18Nimw+xqNkobW5Z8mWvopnz2omnNPcaicm8ows7mHhZOrkp7fCLygiBknVAkdyL/vSe3cvadz3Gsu5euQPyi5HET8iDyZW66+8KEIlHafUZZhW9ftYivXHo83/qAUYtmnbkobLmXPO6hpdeeDNXcbVjyW490E4lqFkyuTnXYAKTHqyAIWSexI1M2eWGbEXbd3N0X5wMHmD+xMmfXTYWVYdvaE2R/u5/5E6r4+OkzgH5R7zIXYN861MmM+rK01gfmNJWz1sxstdw1VmjmoiliyWfEA6/tZU/L8GJRBUHoJ9s10e24zMgSX1+EFl+8yJ933OiHZFu+89+/tpf9bQE+cPLk2GflbgclCroCYXpDEdbtaWfpjAGpQ0m5/coFrL51BU2Vpew1M1zfOtRJTZmLKTXpL7yKJZ9Auy/IbY9sYf6ESp780rn5Ho4gFCX2QlzZxukwFjbb/UHaegyR/8OnzyAUiabV4SnbWBmwf9t0mCqPk8sWTYp9ppSi0uPinlU7eX77Mdp8Qa4ya98MRZnbSVmdk/kTK3lyyxH+870L2HKwi0WTqxlOSTCx5BPYftQI949KUJAgjBi7uyaxCxLA1iNd3G8207a47ZHN/OT5nUOe27Lkn377KD98ZjsAZ86p59w8WPEAteWGu+bdFh+nz64fULbYWhzecrCL2y4/gXPmNQzr/DPqy+juC/Ptle+w7Ug3C4fhqgER+QHsMBv8WnWdBUEYPi/v7E9070tSZ+Uz92/g9ke3cMxspae15oHX9vG9J7YlvSnYcZmW/EMbDgy632hhr2XzviWTU+734VOn8ulzZw/7/B9ZahRQe35bM8FIlEXDWHQFEfkBbD5gLGwkFiEShEQOtPu5+n9fjUt2EQy+tbK/t2qyRdgyt+EpfnGHcTOwJ/tYhlYqwjmM3BkJdq24eEHqssVfuGDuiM6/eGo1CyZVccS8IS6eIiKfEWvMXou9WeyxKIxNfvDUdl7Z1coTbx3O91AKmmQiP83M2LSiRU791jOxz9453DXo+exZrkCsmFe+sCc2eVypo2YmJjQxGQ6VZnG1mfVlcXH46SALrzYOtPtjdZr9OVw4EoqbYDjKVT95mbcOGWJUVz76WZaFTKK7ZX+bPy4apLm7j9fMuPFdzT34EkT75j+9yfT6Mk6ZXpv0/HaRv/efTuWShROT7jeafPz06SnHO7uhnN0tvozKKlhlks+cUz+sRVcQkY9jzS7Diq8pc+U0OkAoblZuPhQTeDAyMIV+fAlVE3+7Zg9nzK6PvX/fPS/FEn12N/vYabpnPrZsGn9Yux+AX7+8J6VoWs0+YGDFyXzx7UFKFj9y49kDCpUNl1KX4XSZWDX8tUIReRtvHeqi3O3gxKk1dCYkWQiCxeYD8e6EXMaEFyOWpX3HVYt58q0jHGiPb6hx2Kz7DnCwI8ADrxlRNjecO4emSg93PbuD1/e2Jz33/jY/bb4g1509i6jWw/ZP54NqryvWT3ak9IWMxeumquHf1ETkbfiDYaq8LsrdDo50yg9XGEinP8SvXn43blsuszuLEcv9UuFx0lBRGrPUU/Hg+gOcObuemfVlfOni4/C6Hdz5+FajREBCdcYXdxjZrh8/YzpzGke/hEG+sAyJxorhi7wsvNrwByN4XQ68LgcH2wPD7sQujE16QxGOdRvW5183DmyCIes38fT0Gd9HRamDhgo3LT19QxYsO3tuv6/Zss5P/ubTbDvSHbffW4e6qPa6mD3Mln3FjtU4pNIzfLtcRN5GbyiCx+XA7SzBF4zw5Qc35ntIQp5Zv6eNT/92Pcu+/Sx94Ugs1G/jf17CTz9+CiDumkR6TJ95udtJfYWbvnA0brG0LEmZXXuTbXsc+J/X7+fF7c386NkdAOw42s28pophLz4WOxcc3wTA9GFG1oC4a+IIhCJ43Y6Yz/CxTYe55+o8D0rImEfeOEC7L8R158wa1nGHOwN8+GdrYu837GmnMxCiotRJtdfFpYsm4ihRskifQI/NXVNvRh619gRjESJVHhf+YIT5EyrZZmaYV9mabFfbmmWUlTq55ldrAZjTVMG6Pe18bNn0UZlHIfG58+fy0WXTaRB3TWYEghHK3A52txg+xFKnfD1jgS/9aSPfeOztWB/OdElcMFxniry1iKaUwutyiE8+gZhPvtQZWyi0EnnAqD2zYn4j//HeBbFtVd54e/OW98wH4G7Tggf4w9p9gBGuON4oKVEjEngQkY8jEIricTm48XwjM80tIj+msGKz08V6orvzg4up9Dg50O6nKxCOcy14ROQH0GMT+dnm4uhTbx1l5r+tZMPeNvzBCFNry+L8y3ZLHuDGFQOzQ1fvaOH8+Y0sKoKImkJi2CqmlHIppf5mvvYopR5TSm1USt2vDAZsy/6wc0NvyFh4/eiy6Xzl0uPp7g3zxr7koVxC8WD10xyuJX/UFPnLT5zEvKYKdrf42HSgg2qb1el1l9Ar7po4LJEvL3Uy2czytCKSnnr7KL6+MGWljlhpA4j3yVucaYutt0gVOy+kZlgir5TyAhuAi81NnwAOaK2XALXm9mTbioKAGV0DRjEhZ4kqmCJIwshxmlUBW3qGl/twuLOXcreDylInTZUeNuxt51h3H0FbwS2vyyHRNQn09IVxORSlzhKUUsxt6g91rPEaC7Hlbiflpf0LsImWPMCvPnka6267KK5G/A0jKPA13hmWyGutA1rrEwFL+S4AnjZfPwesSLGtKPAHw7E6FI2VpUyq8ciiWpGjtY5lYLb6hmfJt/T00VhZilKKGtti4EaziB2A1+3EPwrummA4yncef4fWnj58fWEOtPtzfs2R4usLU17qjEXA3HfdMo43OzYdNX3zZe54Sz5ZspDX7aCxspTffOo0/vWS41h964pBa8MIycnU6VwPWH/xXUBdim1xKKVuUEqtV0qtb25uznAI2aM3FI0rNjQWFtXGe8q9LxjB+gpah2nJ2xdZv3zJfH557VIgvppgRaljQO2VXPDU20f4+Qu7+f5T27n5T29yzndXsbfVx6NvDIzbH4xwJBoT2lzR0xemorRfwKfUeHni5nOpK3fHGlpXepyU239rScIqLZRSfP6CeUyrG374oJC5yLcA1ipItfk+2bY4tNb3aq2Xaq2XNjbmp9B/IuFIlGAkGnPXgGGlFbPIr9nVypx//zt3PbNj6J3HKF2B/pohwxX5rt5QzFfcWFnKhSdMYM+dV3DzRcfF9qnyuOKukSvazfj8YDgaWyc677+e5+Y/vckJtz8RKw0wFHf8fSun3/FsTssj9/TGi7xFTZmL1WZp4ROn1uB0lDC52sOXbN+nkH0yFflngUvM1xcAq1JsK3h6TT9rnMi7Sora37rObAI8VOnWsYzVQFkpaBnCXZMofF2BUNIFQTvVXles808usaqjAixMaBoRCEV48q2jaZ3niS1GWeS2HNZm8gUNd00iVt9kl0Mxf4LhvnnlqxfyxYvm5WwsQuYi/wAwRSm1CWjDEPhk2woeK23Yk+CuKeZsRisVPxwd2JlnPLCnxcd9rxgW7rymikEt+Yc3HGDJN56KtX8E6AyEky4I2hktkd/dbAjka++2Dlgnaqhws7c1vcbzlvPu0TcO8j/PbOej967hS396M5tDpacvktSSt9xmD/7zmZSUFE3QXdEzooxXrfVc8/99wJUJHyfbVvD4zHoblaX28DgHgfbiFfnmbsNyTWyyMJYIRaJcftdqvnDhPN574qS4dPcv/3kjG8xqhpcsmMg9q3YSikRjPULt/OIlI8Tv1d2tHGdamYa7ZvCfSJXXRV84GiuJkSssX/aB9kBcktbvP306r+5q5Z5VO+kLR9KuWX7Xs/EuvB9+5KSsjbWnN8TUmoElcf/w6TM42tXLyRIGOapIto9JrN6GTeSLPdHlmCny1g1sLHKoI8COYz3c9Ic3+MXq+OqQ7aZL4nfXnx7rytPuS27NN5tPPW/s6wCMnIlgODqkJW+5c3Lplw+Go+xvD/Dx06fjNm9Q71k4gSdvPpez5jRw/KQqotpoFF0I+FJY8mfOqecDJ0/Jw4jGN+NS5Pe1+rn+N+tosSXH2LP0LIreXdNliXzxW/Kp/h2O2GqTW2nvFn2hKB8+dSrnzGugocIoWZssVr67NxTb/tYhIzDMEu2h6oBbn+fSZbOvzUckqjl1Ri3XnDkDgKZKD/PNsMQzZ9ejFHzy12v5++bUrQjbfcG4Wu65IBrVtPmDcSGnQn4ZlyL/y5d28+zWY/x41c7YtlQiX6xx8lrrEbtrtNYFFYf94Pr9HH/7E+xvGzgmu2hVJJRhDYT6k9vqzbof77YM9F3vbTXOO6exnF3NPnpDETpM0U5n4RXgv5/anu50hs22I4arZl5TJQsmVwHEGSi15W6Oa6qkuzfM5x54Pen3BHDn41tTXmOoUsDpcrS7l2A4OqJqiUJuGJci/8Z+45H8bVsLt54+40dtFwqv24E/FMnaD2C0eHjDAWZ99e8EI8aC63As+ebuPr7/1DbO+e4qdjcP3uxhtPjrm0Ys+LstPh7ffJj/23go9pkl8h8+dSqbDnSyauux2Gf+YDhW1naS6a658fev8+w78ZEoVs3yyxZNIhLV7GruocW8QVpPAKk4aWoNAE+8dYRP/OI1rvrJyyOeZyJ/ffMgq7Yd4+3DnThLFPMmVDDLrKNuz7oF+PZVi2KvL79rddLzRQf5O86WW9K6YU6XmPaCYVyKvCUMHbaQuf5GB/EirzX0hYsrOuX57f0JZrMbyvGHIgOaK6figz99mR+v2gXEu0LySShijL1EKT77wOvc9Ic3YiJ3uDNAZamTa8+cCcCnfrOOB9fvJxrV9JoF5wCm1pbxu+tPB4jrzwrwu9f2Mr2ujIsWTACMxc1m01JuGqKHaHWZizvM/p4v7WzhjX0dsbDNTPniH9/kU79ex+odLcxtqsDjcrBkag23vGc+3/jAorh9l86s44Vbzgeguy8cczvZUcqorPq/1yzlisWTuOujJ3HliZOA7Lmb9pkiP6NufDX1KGTGnchHozrW+KHdFitsLbwmumvAKK5UTNZ8rc0fOrOhHK3h+vvWxcJEU9HdG2J/W3/kRkuKRcrRJmQ+kdjdTi+YN7K9rX6m15exeGp1LHX+1oc2xeLA7ZmUlm/e7uI51t3LG/s6+Mhp05haa0SE/OblPTxnPhGkU971vPnxCX0bzSfFTLDCXwE2HeiMRaSUlChuXDGXKUmiV2bUl/N/nz8bgCvufonvPhHvnunuDTO9royLF0zgxx8/hfefNIXLFxsi35Gl5CirpLC10C3kn3En8l29ISJRTamzhA5/KCbevr4wjhKFx9X/lViC/70ntrF2mGVq84l9HcF6vF+1rTkWOZIK61Hbskwtl0U+2X60Ozburt4Q9WbPz0//dj2fuX8De1p9zDTnaHc5fO2RLUB8chsY4nOks/9G9srOVgDOnddIXZlx7jW7W/nrm4ZLKJ0GzFNqvOy+43JuvdSogb6nNfP1jK2H49veLZhUmdZxJ06t4b7rlgHw0+d3selA/795V29oQPu4WnPObVm6obf29FHtdUmZ7gJi3P1LWFEUcxorCEai+IMRHt98mDZ/kHK3Iy7Oekptv7VkWZH/+dct3PjA66M76GFiF7uLTRcEwMd/8Ro3//GNlMftMRNqlkyrxlGiYtZsPrGXZOjuDcfN7Ym3jnCgPcBMc5HPcq24HIq3DhvuigEiX+XlcGcvhzsDPLHlMG/u78DrcrBgclXSBJ10K2WXlCg+edZMYOAayIPr9vN6QslqfzDMV/+yifvX7EladsKqL/P4F5dz44o5fPCUqWmNA+C84xpZe9uFALyyqzW2vbs3HOvOZGFZ3NlyzbX4gtQPsY4hjC7jrv2fVVN8blMFbx/uYuWmw9z68CaAAY/A02r7F4+sSJX71hgZlD8ejcGOkEAwwuyGcv7noydx4tQa7rn6ZD7/e0PcH33zEHd8cHFcBUCLQx2GhTutroxIVPPSzhbe3N/Bs+8c5Z/Pm5M09jnXzGzo/zfo8AfxByN4XCX0hgwXTiSqmVlvWPJ3f+xknnnnGK/vbecRs3CXJ6Hw1ZQaD2t2tfCZ+zew+WAnJ02r4YRJlThMgT9+YiWBUIRrz5wZ88uni9flwFGi6E7wyVt/X3vuvCK27eHXD/KHtftj7z9z/uy4RKYu0304udrLLe85fljjACPEckqNl7++eYh5TRUsn9fI7mYf58+PXxC1FqSPZKloWWtPX+xpSygMxp0lbz2WWjWu37WlgzckLLJNsvkVj3bl33WRLoFQhLpyNyeakR9XmH5Xi00HBi7KAbT5QrgdJVSWOmNRJT9etZMfPbeTn9jCTUcTZ0n/n+hB8yaUuKhnuWsmVXv5pzNmxFUrTLTkT5pegy8YYeOBTqLaKBt8/KSq2Ocrb1rOM/9yHtedM4uvXDo8cVVKUVHqjK3vpKIvHOHXL8Unbu04Gh/JZN0oEsNCh8OCyVW8c7iL6+9bzz/fv56evnCstr6Fx+XA4yrhv57clpVw4TZfMNbXVSgMxp3IW26XyabVbi/81JjwmOm0pb9ny9IZDayG5BaJLodUIZXtviC15S6UUvzxhjOB/miJSJ4Wno1yASVMrPLEnjQ+dGp81qRlyVtMH0Tkl80yug1ZZW4jUc2Eyv6buaNEJS17kC4VpU66bd+vfcHe+ttbvb0uQZ2VAAAgAElEQVSF3S0+/v3y/pvI1iPxPvju3jDlbkfsCWMkLJzcf/Natc1YqN5xbGBYrPVU9OzWo7yxr537X92bdjQWGAvj1txae8RdU2iMO5G3fLrWI+U+2yJZskiKd75xKXObKmLummIgEBxYR+V/r1nKN9+/0Pg8RUx0qy8YW4izInSsm5snzZoo2cZKaKotd7PLLNI1o76crd+8NLZPYiz7oin94pZYp3xKjZffXX86/3b5CbFtdVkUpUpPvCVvD7+94u7VnHD7E/xx3X48rhKuPWsmb3/jPcDA1oTdvUNXwBwKqwYPGN/JhKpSbr9ywYD9rj9nlnnNMN97Yhu3P7qFT/zytbQjym7580YW/eeTbD/aTasvGFvsFwqDceeTtx5Ja02R32PLgEzVnaa+3E1XIBT3R6+1TntRbrTptWV6Wly8YIKZCflWysfydn+QOvN7SUzXz1dHHr/ZknHR5Cr+bLZirPQ48bgc/Pa6Zexp9Q34d5jX1C9udUn8w+fMa4gLJ7WiarJBRakzLtTT/l1b0UvPvHOUc49rpNTpQGtNiRqYldwVCA+IhBkuVj/UH199ClecOCnlfre8Zz6/fOld2nzBWMXSV3a1svVINyfYXFmpeNSMRLrkhy8CcJXUpykoxq0lb1mq9kfrVB1zrHKyPtsPtpATpPzBgSIP/VZtsjow2450s2Fve+zm5zR98xaa/LhrAqEIHreDk6bXxLZZluK5xzVyjZkEZcdRovj6exfwzfcvTGlV2heek90IRkqFJ17krdaAsxvjx7F8bgPQ78fvTvDjd/eFBkTCDJeJ1R723HnFoAIPxg28stRJS08fR7p6Occc2wvb0+vaNtm2dlVZ6oyVkBAKg3Ep8qXOkrhqkydNq+GcuQ185vw5SY+xRN5eabCQC5cl+uQtLOG3N0LRWvPDp7fznv8xrDC3zR9dbUuq6s1TDZ/eYIQyt4Nz5/UnHE2qHpgIlMgnz57FPyW5AViU2ZpIZ9OHnLjwalny7z1xctx+F9lCWytKnXHrJJGo5q1DXaMazVRf4aalJ8iRzl4WTjZcO/ba+oMRF3pamA+345px567pDRoCaLd0p9WV8aOPnZzymJjI20Lj/MEINQVanqM3hchbLhe7T74zEIrVFl8+r4HP2/qX1pS5YrXL81Vy2fLJT6sr45TpNQMWWUdKme37qc2iu6bK66LNH4y58yxjYOHkKh698Wweef0AMxvK454wLOt/25FuvvSnN9nX5qenLzyqoYiVHhd/M2sCNVV5mNtUwd83H2ZOYwWfO39OStfkg+v3c6A9wMQqD0e6eimixPBxw7gTecuVYfcx1w5RFrXa6yIQisRlBRZqnXl/MEwoopO6axwlCrezJDb2Lz+4kYdfPxD7/Pv/sIQJVf2P3v+4dBpbDr4F5G++/mAk5pv+y+fOztp5y1y5cdcc11TB7/0hjnb1MbHaE/vevG4HJ02r4aRpNQOOsfz4f16/n7cPd3Hm7HpWHN/IpQsHd7NkkzNm17H9aDdTarycO6+B/W1+Xt7Zyn89uY0PnTI1ZZmCWx8ycgDqyt2myIvKFxrj0l3jNUPTrJjhmiEsOcttYffZF0IJ4vV72mKdjyysJKBls+qSHlPmdsRcL3aBXzarLk7gAa45cybrbruIKTXevPW6TbaInA3s7ppMwhQTWWzmJljlBKy/k8HmUG765N9t8XH8xEr+cMMZ3HDunFEt13vbFQvY9q3LeO5fz2fehEo+tmx67LMtB5PnVUB/AuGXLzGacQ8j8lIYJTIWeaVUuVLqr0qpl5VS31NKNSilViulNiul7szGILOJXTTC5l9kOpY8wJHO/jC3QrDkP/yzNXzop6/E3vv6wtz5+FZOnVHL6SlE3pui29W3E6oaWjRWlho3hny6a5K4njKlLAfnBDjBrDFj+bOt73qw6KRKj9PILN56bMACbb6YP7GSv9+0HIAtSSpaghEff7SrlxtXzGHRFKO5+GDljIX8kA1L/uPAq1rrs4GFwM+BlcAS4DKl1HFZuEbWCCSxDIfyyVrxynbL17JsQ5EoHf78Vmu0HpHX7WmjuzfMFy+cl9KHaoh8dIBoNw5SUtfrzl/zlECKSKFMyVXcf5nbSUNFaayaZ8ySH+SmYq+KuSCNkMXRYsHkKuY2VaRsK7inxUc4qpnVUBH7DdlrJQmFQTZ88h3ADKWUA/ACpwB3aK2jSqkXgBVA7trmDJNAMBIXWQNDR1dYlvxOW7ag9eO9+U9vsnLTYd79zuV5i5tv7u6jqcrDuj1tOEsUS2embpTscTkIBMNsTngEH6zaYr563Wqt6eoN5STKpKRE8eWLj2P5cY1D7zxMptd52d/uxx8M8/ZhQyAHe3KwygA89JkzWTy1OuvjyYRFk6t4zazAmtgE/eHXDdfgGbPrcDtLWH3rikGNBSE/ZMOSfwS4FNgFvAN0AZaCdAED/AZKqRuUUuuVUuubm9OLxc0WAVsjCQurV2YqkglgIGSEvK3cZPTUHG6LvWzyC7MOyv62AFNrvUmLj1l43Q6eeecY//CzNXHbB7tB5asNoi8YoTcUHVBTKFt84cJ5SRdCM2VaXRmv7GplwX88yb0v7gagxpvakPivD5/I329aztKZdXFFygqBRVOqOdzZy4Pr9jPvtsf52qObCYajvLa7lZ+9sIulM2qZahbym1ZXlrekOSE12RD5rwI/1VrPxBD04wDLHKkGWhIP0Frfq7VeqrVe2tiYfUtqMAK2lnAWTZWDNzhIKvLB+GSobNXjHg5WstILZl2Slp6+IRNR7HOfZxZp+4ItbDLpdTzOnDaqToWV6p9O445CIjHM8/z5jYO6a2rL3bHerYXGwsnGT9mqpPm7V/fx8xd2cd+aPdSXu/nltaflcXRCOmTjObgSsJyKfcAa4BKl1BvAecBdWbhG1rD75K8/ZxbtaYhzMpG30uJdDkUoomn1BZmRpRjudOkNG9a11eGqtSfIjCEiMuwRNBOrPTxy49mxYl2paKwsjdXhH02saxZbwStr8bXK42TlTcuzGqI52thvPsvnNbCvzc/KzYcpdZawcEp1XMKcUJhkw5L/MfBZpdQaDJ/8VcDlwCZgpdY6PzVqU2Av3nX7lQv4wUdOGvKYZFUJrYVLK0O0dRARDIYHLnRmSigSjfU+tTpctfqGtuTtKeg3XTiPilLnkGsJTZUeevrCQ7YPzDYtpiXfWGSW/PETDWEsNZO4EteAiolqr4sJVcb3f9OF8/jASVPYfrSbfW1+Gor45jWeyPivT2u9B0jMUlme6XlzRW8omnFInrNExaJrSl0OfMEIbb7UVSqv/NFqth/tiWsakSnWTaOhopSWnj56+sK0+YIDyiUnYkUKXXvmDE6bmTzMMhFrMW3NrlYuPGH0oidai9SSn15XxsdPn84/LJ2W76Fkhb994Rxe3tnC0hm1dAVCRDW0+0M5WysRssu4SoYKR6IEI9GMQ/LssealZi/LwdwZ248OrOGdKdb1J9cYlvnnf/8GUT109qaV+BMeRtaK1Vbv+vvWj2SoI+ZoVy9KUXRNKEpKFN++anFOFnXzQVOlh6tOnopSKs4dKB2gioNxJfKWMI4kEeaeq/tr29jjxi2XSSpXRiiSm2qV1vWt7lVWxcChsiSvOnkKy+c18LkVgy+22pmUIqU91xzqCNBUWSpNoQuIybYWmVJtsjgYV7+edLIPU3GlrYqg191vyVvVA1Ol/e+1tRfMJtb1K0rjF76Gqv9dU+bm/utPH9DPdjDmTahkybSaIRdoM2HLwU5WJTQOP9QZiBMVIf/Yw3MlJr44GFci32uGPWbFXROMEI5EY2KbamHV7qp5YsuRrMXTW5b8RSc08bFl/b7fiVW5sbrPnlOf0xr6H/rpK3zqN+vinogOd/SKyBcwy9Jc0xHyS/Eu+48Ae0XAkbDp65cAcO2v1hIIRfD19Qt7qmQhe03uz/xuA1edPIUfphHRMxTWXGrK3HzngydyzZkzOdbdl7OsW6/LQTiqB2Q9ZgtrreCFbc1ctngS0ajmYEcgru66UBjcc/XJhCM6JzWFhOxT1CIfjWqae/oGVE9MRUzkR2jJV5mdespMn7w9QShV2n9i4+RM3Tdaa5q7+2JPDtYP7YRJVZyQw8q01nUCoUhORH7+xEre2NfBjmM9dK7dx7/9ZTMwMLFIyD9XJjRAEQqbonbX/OT5nZx+x7McaPcPvTP91namqddelwN/gsin8sm3JDQAzzRt/d4Xd7PsjmfZYbqBclVNMZFY68AclTewgn32tPriyidLU2hByIyiFvmn3z4KwLHu1DHqdqx6M5kKo9ftpDfUL/KOEpXSJ5/og3c6MnOnPLh+P9D/hJCLCo3J8CbpKpVNAqYvfk+LjyO2uv2FUnpXEIqVonbXRMwSu32h9BYErXozmfoSva4S/MFIrB3gxCpPSvHr6QvHxdVnWuPGOv6hDUbZ49EqCJWsP2w2sb6fXc0+GircTKgq5aITJsRi9AVBGBlFbclbIeidgfSE04rcyNT6LXM7Cdgs+QlVpSkXXrt7wzRV9QtVc5pPHalIFNnRWvzyuHNtyRv/mJ2BELuafVy+eBLfvmpx3so3C8JYoahFPhrtr92SDq+920ZFqTPj+F6PK37hdWK1J6XI9/SG46xRXwYhlFrrAZ13RstdU+bKrU++NxSJyxCd01iRk+sIwnhjTLhrOtIsg/vc1mNcsmBCxi6OMreDYCRKc3cfzhJFXbk7qYXbG4oQjETjSg34QxG01iOyUP3BSCzD1iKb/UkHw5tDS15rTSAUYemMWspLHZw2s46PnDY26r4IQr4papG3rOd0ap37g0YBrzlNmVuIlvX8m1f2cNyEypj7JhFr0dXeMEJr6AsPbFySDtbN7NozZ3Dfmr0jGfqIyaVPPhTRRKKa2nI3D/x/Z2T9/IIwnilqd40lopa7prm7jwv/+3nebRkYi2710bQKemWC5Z+ORDU/+8QpeFwOekPRmPsoNr5eY3xnzKnjZ584ha9cejyQOjt2KKxesvMmDN7JKhdUeAx7IN2npuEQ64MqXYUEIesUtchb4mB1EPr75sPsavbxy5d2D9j3cIch8pOqM0+Tt/zTtWUuZtSXx0IyrSYeFt2myFeUurh00SRqzAYLI3V5WE8s0+oGL0KWCyZWeaj0ONl6OHlT50zINBNZEITUFK3IW2WDwShJC/3+6Vd3t/HXNw/G7X+ww0iYykZFRUuMLJdLLIY8wZWxs9koaWA9PaTaL106zSeWfIQVKqVYOLmKLYdyKPJiyQtC1ilakffbrGErecZpivzOYz188Y9vxkQR4P5X9zKp2pOVglcpRT7BQl+zq5Vqr4sTzE5BngwTitpMd01NnlquzW6s4EBbetnFwyFbmciCIAykaEXeEoaGCjfN3X2EI9EBi4LPbzdK10ajmrcOdfGhU6Zmpe6KJepWwxDLR2/3tbf5gqzcdJgV8xspMW8+lltnpJb8rmM+PK6SIRuP54oylyPrbQwhszr/giAMTtGKvCXosxrKiWqjM5OVgWphZYf6gmG0Tt6QeyS4zNIEluVZliTyZOP+DnzBCB9bNj22LdMwxHcOdzF/YlXMLTV9lH3zXrcjFgKaTWILryLygpB1siLySqlblVKvKqUeV0o1KaVWK6U2K6XuzMb5k2Flr1oFrA52+DnQHojbpytg7NNlLoBWebMTMWqVUbAsem8SC91njs8eI5+pT37HsW6ONyNrtn7zUp7+l3NHdJ6R4nE5YiGgw+WhDQfYn8LVIz55QcgdGYu8Umo2sFBrfQbwOPA/wEpgCXCZUuq4TK+RDEsoZ5oi/6GfronVcwEodztiln23+f9KT3Ys+VNn1nLliZP4zgcXA/0W/TdXvh2zcv19A63TTH3yXYEwteZNw+NyZFzRcriUJXFLpYM/GOZf/7yRa3+1NunnmXTsEgRhcLJhyV8I1CqlXgSWA7OAp7XWUeAFYEUWrjEAyzUyO0kp2pf/7QKqvC66zJBDy6KvypLIlzod3HP1KbEbjGWBbjnYxSEzHt960ii3tUvzjlAkoT+aKJ9+65FWonzqLaNaqPVElUivuGsEIWdkQ+QbgWat9bnAVGAZ0Gl+1gUM6BGmlLpBKbVeKbW+ubl5RBe1hGZqbbxf2lGimFLjpcrjors3jNaaf/z5GgAqPblJ8LULb3tsHWCgcCXz3adLbzg7rQszIZlbaig6/EFu/tObgJFXkAxx1whC7siG6nUB28zXu4EmoNp8Xw0MyL/XWt8L3AuwdOnSEa3iWUJjF9gNX7so1nyiyuukqzcUV/WxKksLr4nYhbzFTMzyB8M4SlQsAse+30jcNbEwwzxauyNxN9k7Y9WWGa6mB9ftZ3p9GWfMro87n0TXCEL2yYbIbwC+ZL6eiyH4lyil3gDOA+7KwjUG4I+JvJP/976F1Fe4qa/oTxKq8rg42t3LPttiX64sebsvuaUnGBtfmcsRV4jMEvyRVHLsLQBr17q2NZZ2X5DyUiduZ/IHwsOdAR5a379OYt1kb314EwB77rwC6P+3LE1xHkEQRk7Gvyqt9RqgVSm1DkPgrwEuBzYBK7XWOzO9RjJiteHdDq49a+aAvpOVHiddgXCcyGfLJ5+I3QK1nhz8fRHKSuMFWSkV10BkOPgLoL6L9SRijeXkbz7N9fetS7n/p3+7nj+ZnawAwtFo0vDL3lAEb8INURCE7JAV01Zr/dmETcuzcd7BSOausVPlddHVG4qJ/EtfWZHS4swUe4KV5a7xBcNxi64WXvfIRL4QXBr2EFCrLv7qHS0pSycf7TK+i0+dPZO3D3XhD0bi5v7Vv2ziP65cSCAYkUVXQcgRRft87A9FcDlUygxWa+F1X6ufydWeAQu02eauj54E9FfE9KcQLq/LEeuCNBwKIfXfms+WQ13c9eyO2PaXdrbE6gfZKXc7WDKthtuvWECZ2xHXFxfgD2v389zWYwRMS14QhOxTtPXkA8HBhaHK6yQS1Ww90j0qVRvff9IU7n1xd6wVoX9QS3743aF6C6BSo/V9320TeIB/+uVaGircrP/axbFtWmsOd/Zy8YIJlJQoY97tkQFdvLp6Q4bIiyUvCDmheC35YHhQYbD8728f7mJG/eik/1d7XTER6+kLD/DJg2XJj9xdk0+Lt7w0tU1gLThbtPtD9IWjsdLOHnMtIlHk97X5OdwRoCpHi+KCMN4pYpGPUJbEUrawh0vm2lVjUVPmijXVONrVl7QkcDEvvFZ5nHhcyf9kEtc7DnUYJSas0s7WzS2x6fq6d9t4fV8HK+Y35WDEgiAUrcgP5a6xh0va68fkkmqvm85AiGA4SktPX9IGJR63g0BoBD55K/Xfnb9/MqUUE6uSV8BMzDx+Y187AJPM0s7eJJZ8fbmb9XuN/c6cU5+LIQvCuKd4RT4UGTTSxB4umaskqESqvS46/SF+8PR2tIYpSWrXl7kcI4qTD5gho4M9vYwGE2wiP7uhnPctMUJX7ZGRa99t4/a/vgXAZMuSN6OKrCedP3/mTD57/pzYMaP1tCUI442idYT6g5FBk5vswp6tEsNDUVPmIhiJ8rMXdgHQWJXEXeN24B/BwmtLT5BSZwnleV6gtET+9Fl13HvNUqq9LpwlirV72mL7PLShPzbeSlBrqChFa9hysBOXQ7F0Rm2syYuzRNGYh25XgjAeKF5LPji4JW8X9tFa1EtMtlo8pXrAPp4RhlAe6exlQpUn7wlDy2bVUVnq5LPnz4l9x2Wljrh6PHta+xPQrNr3Z89tAOCxTYep9rrNdoLVeFwlTKz2xPYTBCG7FKUlf6y7l21Hu1kwuSrlPvZiWKPlrrHfdNbediENFckXXkdShfJoV29Kf/ho8okzZvCJM2bEbSt3O2PJUWA0Vj9xajV3XLU4tm1OYzmVHifdveFY+0K3s4Sz5jQg+i4IuaMoRf6Ole8AsLu5J+U+dos3V+UMErEnKqVaFPa6SwiY3ZXStcrfbfHx2rttXLF4UlbGmW3K3E76wlEiUY2jRNHqC3LWnAYW2Z5klFLUlrkNkbfddO+5+mQUovKCkCuK0l1j9UydlaSWfDJyVZgskWQNQhIpcxtJWqFI+sU3731xNwDlSeLuC4GyWE2bMKFIlA5/iPqKgRFNlgVvd6WVuZ2SCCUIOaQoLXlMffy2zR0wGKNVCsBuvacqt2Av15tuLR0rsuamC+dlOMLcYCV9+YMR1r5rLMDWJ3FVWeJenaKuvCAI2acoRb4jEGLRlKpBMzABHr3xbN4047VHg3SKh9mLfKUb9XOsu49TZ9QWbJihVb6hpy/M9fetB5I3CLGeqCSSRhBGj6J017T7g9R4h05wOmlaDZ88e9YojMggnScGr5nMdO2v1vLEliOx7S09fXQmpPxbHOnqZUKScMxCwcrsPdrVi9t8gjnHjKax02P2vZ1Vn56bTRCEzClKke/0h2L+3UIiHd+yZclvO9rNZ363IbZ96bee4ZRvPZ30mGNdfXFJSIXGZDPpa2+rn1A0yhcvnEdN2cCbsNUacWaaaymCIGROUYp8R6BART4tSz61iykSHbgYu7/NT09fmGkF6qoBmGhmta7f025k+tYOzPQFI4wSGJWqoIIgGBSdTz4a1XSk6a4ZbdIS+WEsAveGIjz7zlEAVhxfuAW8PC4HjZWlPP224X6ankLEv3XVYj66bHrScg+CIOSGohP5nmCYqKYgLfl0epSmK/ItPX0s/dYzAEys8qQdLpovJtd42bi/gyk1XpbOqE26T0WpM9a8WxCE0SFr7hql1L8opZ5RSjUopVYrpTYrpe7M1vktrMXJ0apHMxxK0kjd9KZZRdIKRYT08wHyyZQaw2Vz1px6nCnCRwVBGH2y8mtUSs0ArjXf3gysBJYAlymljsvGNSza/cbiXbKFvWIgWQRONIkvfp2t4Je9ZV6hYpVzTuWqEQQhP2TL5LoL+Kr5+gLgaa11FHgBWJGlawD9PVQL0V1jcdK0mpSfJSsV3BseWMvmxe3NLDHP88/nzc7e4HJExKy5NlrZxYIgpEfGv0il1NXARuBtc1M90Gm+7gLqkhxzA3ADwPTp04d1PaseebJkm0Lg7W+8B2dJ6ntnMp98YjvAgx0BdjX7+I8rF/DXG8/O+hhzweIp1fwBmDehMt9DEQTBRjbMriuB6cB7gPlAFLAqU1UDexMP0FrfC9wLsHTp0vSLuACdprumugCja2Doph7J2ufZ2wGGIlH2tvoAOH5i8Qjmx5ZNY8m0ahZOHlheWRCE/JGxyGutrwZQSs0EfgG8AlyilHoDOA/DlZM1Ogp44TUdklWetJceDoQiHOroBfqTjIoBqz68IAiFRS7CIO4GLgc2ASu11juzefJ2f4hytyPt4l6FjtY6ronIiV9/ilVbjwH9SUaCIAgjJWurZFrrPcBF5tvl2TpvIh2BYNFG1iSjLxzFH4xvB7hy82EaKtyjVj1TEISxS9GZw53+UNG6apLhD0bYcqhrwPZJ1cXjqhEEoXApOpHvCISoLS9ukX/wn8/E5TB88/5gmO8+vnXAPpNrxFUjCELmFJ/IF2jdmuGwbFYdP/jHk4CB4ZMWxbToKghC4VJ0It8ZCI2JzkJWK7/uvjChaJSLTpgQ9/lkcdcIgpAFikrktdZ0+ENxjaCLFa/LWPM+1tWL1jA1oTzvtDoReUEQMqeoRH5/W4BwVI+J0EKrVeBBMybeLvKfPGsmFxw/IelxgiAIw6EoCo1orfnzhgMc7TQE8dx5jXkeUeZYIn+4IwAQV2P96+9bmJcxCYIw9igKkd95rIdbH9oEwAmTqsZE+zirVeBh88bVVMA9XAVBKF6Kwl3T0hOMvf7U2TPzN5AsYtW4OWha8oVai0cQhOKmKET+WLdh7VZ7XXzw5Cl5Hk12sNw1zd19AFRJiV5BEHJAUYi8JYQv3rJizHQdKnWWUKKguceYW1mpiLwgCNmnKBSzubsPt7OEKu/YEUKlFGVuJ8GwUZxsOA2+BUEQ0qXgVVNrTXN3H40VpUnL9BYzXreDnr4wXpcDR4niL587i5IxNkdBEPJLQYv81iNdXPo/q/G6HMxtqsj3cLKO5Ze3sl9PmV6bz+EIgjAGKWh3zbPvGHXVA6FIQfd0HSmWi8YKpxQEQcg2BSvyL25v5jev7Im9H0vlhS1ilvwQLQMFQRBGSkGqy+YDnVzzq7Vx28aiJV9uRtSUiSUvCEKOKEhL/qcv7KSi1MkvrlnKR5ZOA8amJW+5a8olfFIQhByRFZFXSt2nlHpVKfV/SqkKpdRjSqmNSqn71QhCYl7b3cbliydy0YIJscJdoYjOxlALCsuCF0teEIRckbHIK6XOAZxa6zOAKuA64IDWeglQC1w8nPO1+YK0+oIcN6ESgAlVRsXJrkAo06EWHF635a4RS14QhNyQDUv+KHCX7XxfB5423z8HrBjOyXYe6wFgjhky+d4lk7nq5Cl84cJ5WRhqYeFxGV+/FCcTBCFXZGxCaq13ACilrgKiwBtAp/lxFzA/8Ril1A3ADQDTp0+P+8wS+bmNhsh73Q5++JGTMh1mQdLdGwZgWm1ZnkciCMJYJVs++fcBNwHvBY4A1eZH1UBL4v5a63u11ku11ksbG43a8E++dYQl/+8pNh3owOtyxNVXH6u0mHVrmirFkhcEITdkwyc/EbgFuFJr3Q08C1xifnwBsCqd83zzsbfpDIRYufkwc5rKKSkZ++n9FWZUjTTtFgQhV2Rjxe9aYBLwpBlIcz8wRSm1CdiIIfpp090bjrlqxjrffP8izp/fxKIp1UPvLAiCMAKy4ZP/LvDdhM0/H845DnUEONAeiL2fZ0bWjHVqy918+NSp+R6GIAhjmIJIhvrL6wfi3s8ZJ5a8IAhCrikIke/pi+B2lMSs2rFYcVIQBCEfFEQWjj8YpqzUwbc+sIj3nzRZRF4QBCFLFIQl7+uLUO524nE5WD6vMd/DEQRBGDMUhMgHQmGp3yIIgs51fqAAAAcHSURBVJADCkLkfX0RaWQtCIKQAwpC5P3BMOViyQuCIGSdghB5X19EKjEKgiDkgIIQeX8wHGtmLQiCIGSPghB5X1AseUEQhFxQECLv7xOfvCAIQi7Iu8hHtcYXjIzJRt2CIAj5Ju8iHwhFADhhUlWeRyIIgjD2yL/IBw2RXyzldgVBELJO3kXe1xdhSo2XJrNhtyAIgpA9CkDkw5w9tz7fwxAEQRiT5F3kI1pz9tyGfA9DEARhTJJ3kQc4a46IvCAIQi7IusgrpTxKqceUUhuVUvcrs/FrKmrKXDRWlmZ7GIIgCAK5seQ/ARzQWi8BaoGLB9t5Wm1ZDoYgCIIgQG5E/gLgafP1c8CKHFxDEARBSINciHw90Gm+7gLqEndQSt2glFqvlFrf3NycgyEIgiAIkBuRbwGszKZq830cWut7tdZLtdZLGxul3Z8gCEKuyIXIPwtcYr6+AFiVg2sIgiAIaZALkX8AmKKU2gS0YYi+IAiCkAeyXsRda90HXJnt8wqCIAjDpyCSoQRBEITcICIvCIIwhlFa6/wOQKluYFteB5FdGkgSUVTEjLX5wNibk8ynsMnVfGZorYcMTyyExqrbtNZL8z2IbKGUWi/zKWzG2pxkPoVNvucj7hpBEIQxjIi8IAjCGKYQRP7efA8gy8h8Cp+xNieZT2GT1/nkfeFVEARByB2FYMkLgiAIuUJrPeR/wH3Aq8D/ARXAY8BG4H76nwZcwN9sx5wGHABeMv+bn+LcnsTzYUT9/Bl4GfjVIOMacGyS8ToLYD7n247bD1yb4tik804cy2jOJ9X1h/qOU+2H0WPgeXOOt2drPua2W83jHgfcKc7dAKwGNgN3mttmmcetAa4b4rdQDjycZPvdwC+y+O+T7t9Msfx+MplPWsem+HtL97o5m1O2f0PpaIL9vyEteaXUOeaJzwCqgOtIaAqilPICG4hvEFIL/FRrfY75X6pY+GRNRj4AbNRanw1MUkqdlO6xScZ7if2AfMxHa/28dRywCXgjxbED5p1iLKM2n2THDvUdD7Hf1cBb5hzPVkrNysZ8lFKzgYXmcY8DU5ONCbgZWAksAS5TSh0HfA54GDgbuFEplbSTjTnWteax9u3LgEvT/A7Sms8w/maK4veTyXzSPTbZ2NM5NtdzyvZvaChNSCQdd81R4C7b/l8noSmI1jqgtT4RwzK0qAU+pJRaq5R6eJA2gMmajDwB/EAp5QRqMOrSp3ts4ngLYT4AmOIxV2u9KcWxA+adYiyjNp8Uxw71HQ+2nwIqzespIFGARjqfC4FapdSLwHLg3RRjugB4WmsdBV7A+PdRQKV5PQ8wP9mBWut3tdYL7duUUi7gu8DXUlxvpPOxzj/U30yx/H4ymU+6x6Yc+xDH5nRO2f4NpaEJcQyZDKW13gGglLoKiGLcrexNQZL+IICdGI/jK5VSrwDnKaX+ETjRts+LDGwyMl9r3WNe8zXgsNZ6t1LqJ2kemzjep/I9H9vnF2NW5Uw2H631vyfOO8VYRm0+1piGuOZTQ8zH/m9RgWG1PAz0Ad4szacRaNZav08ptQY4Ryn1JaDJts+DJG9q8yPgl8CvgXbAq5T6S+KxWuu7k1z3FuC3wLFkg8pgPhaD/s0kmU+h/n5GPJ90j03x9zbg2ERyPacc/IaGRVoZr0qp9wE3Ae8FfsYQTUFM9gBbbK+btNafS3LuBxLPp5SqB3qAs4DnlFIr0j02cbxa63C+52P7+L3AXwBSHJts3kPW48/lfNK5pvkdJz02cT/zgeF6rXWzUurPJBHHEc6ni/7yGLuBKVrrDyY590cSzrcX8AMf1lp3KKXWAceSHZuCSzF+fDXABKXUh7XWD2VhPhZD/c0Uy+9nxPNJ99ghxh47dqjjsj2ndK45nN9QuuePoYdw2gMTMRaqys331wE/N1+vBC6y7bvT9vrbwLUYjxibgAUpzj/gfMAdwCfMbY8Dlw/j2LjxFsJ8zNcKw3r2DPJdp5y3fSyjOZ8Uxw76HQ+2H/A+DCu+FNgBVGRpPmdiWNsArwHLUozpG8BXbfOei/ED+m+Mp4GtmAtt6XwXtm3nk2ThdaTzGcbfTFH8fjKZzzCOTTr2oY7N9Zyy/Rsa7O8w2X/p+OSvBSYBTyqlXsJY1U2nKcg9wKcwfnCPaK3fTrFfsiYjPwauMx+7W4Enh3Fs3HiVUtcVwHzAiGZ5W2vdm+I4hjHv0ZzPkNdM8h0Ptt/jGH7v1cA3telayHQ+Wus1QKtpiW/TWq9NMaa7gcsxBH6l1nonRgTFMoyIii9o8xeUJUb67wPp/c0Uy+8nk/mke2yqsQ91bK7nNJyxjnS/lEgylCAIwhhGkqEEQRDGMCLygiAIYxgReUEQhDGMiLwgCMIYRkReEARhDCMiLwiCMIYRkRcEQRjD/P/tiX9w8g2SMQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "stock_rise.plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 自定义运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2015-03-02    12.25\n",
       "2015-03-03    12.52\n",
       "2015-03-04    12.80\n",
       "2015-03-05    12.88\n",
       "2015-03-06    13.17\n",
       "Name: open, dtype: float64"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['open'].head() # 拿到的是seris"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2015-03-02</th>\n",
       "      <td>12.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-03</th>\n",
       "      <td>12.52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-04</th>\n",
       "      <td>12.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-05</th>\n",
       "      <td>12.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-06</th>\n",
       "      <td>13.17</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open\n",
       "2015-03-02  12.25\n",
       "2015-03-03  12.52\n",
       "2015-03-04  12.80\n",
       "2015-03-05  12.88\n",
       "2015-03-06  13.17"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[['open']].head() # 那到的是dataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "open     22.74\n",
       "close    22.85\n",
       "dtype: float64"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 开盘价的最大值-最小值\n",
    "# 收盘价的最大值-最小值\n",
    "data[['open', 'close']].apply(lambda x: x.max()-x.min(), axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
